From 6eb5db0e4068f05bac6d643fa4bfa94e7146b450 Mon Sep 17 00:00:00 2001 From: robertlipe Date: Sun, 9 Jun 2013 23:17:34 +0000 Subject: [PATCH] Fix Ozi route reader to not treat header as routepoints. --- gpsbabel/ozi.cc | 11 +++++++--- gpsbabel/reference/route/ozi.rte | 13 +++++++++++ gpsbabel/reference/route/ozi~gpx.gpx | 32 ++++++++++++++++++++++++++++ gpsbabel/testo.d/classic-1.test | 9 -------- gpsbabel/testo.d/ozi.test | 10 +++++++++ 5 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 gpsbabel/reference/route/ozi.rte create mode 100644 gpsbabel/reference/route/ozi~gpx.gpx create mode 100644 gpsbabel/testo.d/ozi.test diff --git a/gpsbabel/ozi.cc b/gpsbabel/ozi.cc index e433f03b6..dd2304be6 100644 --- a/gpsbabel/ozi.cc +++ b/gpsbabel/ozi.cc @@ -801,14 +801,17 @@ data_read(void) s = csv_lineparse(s, ",", "", linecount); i = 0; + bool header = false; while (s) { switch (ozi_objective) { case trkdata: + wpt_tmp = waypt_new(); ozi_parse_track(i, s, wpt_tmp, trk_name); break; case rtedata: if (buff[0] == 'R') { ozi_parse_routeheader(i, s, wpt_tmp); + header = true; } else { ozi_parse_routepoint(i, s, wpt_tmp); } @@ -829,16 +832,18 @@ data_read(void) switch (ozi_objective) { case trkdata: if (linecount > 6) {/* skipping over file header */ - ozi_convert_datum(wpt_tmp); - track_add_wpt(trk_head, wpt_tmp); + ozi_convert_datum(wpt_tmp); + track_add_wpt(trk_head, wpt_tmp); } else { waypt_free(wpt_tmp); } break; case rtedata: - if (linecount > 5) {/* skipping over file header */ + if (linecount > 5 && wpt_tmp) {/* skipping over file header */ ozi_convert_datum(wpt_tmp); + if (!header) { route_add_wpt(rte_head, wpt_tmp); + } } else { waypt_free(wpt_tmp); } diff --git a/gpsbabel/reference/route/ozi.rte b/gpsbabel/reference/route/ozi.rte new file mode 100644 index 000000000..bbd02e257 --- /dev/null +++ b/gpsbabel/reference/route/ozi.rte @@ -0,0 +1,13 @@ +OziExplorer Route File Version 1.0 +WGS 84 +Reserved 1 +Reserved 2 + + + +R,0,1 COSTANERO JA,,255 +W,0,1,268,MPCHIC, -34.445850, -58.523720,40507.8513889,53, 0, 3, 0, 65535,MARINA PUNTA CHICA, 0, 0 +W,0,2,205,JA12, -34.447380, -58.507270,41344.8282060, 0, 0, 3, 0, 65535,, 0, 0 +R,1,1 PCHI COLONIA,,16711680 +W,1,1,121,COLONI, -34.467500, -57.854170,0.0000000,35, 0, 3, 0, 65535,07-OCT-00 18:22, 0, 0 +W,1,2,118,COLBO3W , -34.477470, -57.861670,41154.0041088, 0, 0, 3, 0, 65535,, 0, 0 diff --git a/gpsbabel/reference/route/ozi~gpx.gpx b/gpsbabel/reference/route/ozi~gpx.gpx new file mode 100644 index 000000000..bec3c6550 --- /dev/null +++ b/gpsbabel/reference/route/ozi~gpx.gpx @@ -0,0 +1,32 @@ + + + + + + 1 COSTANERO JA + + + MPCHIC + MARINA PUNTA CHICA + MARINA PUNTA CHICA + + + + JA12 + + + + 1 PCHI COLONIA + 1 + + + COLONI + 07-OCT-00 18:22 + 07-OCT-00 18:22 + + + + COLBO3W + + + diff --git a/gpsbabel/testo.d/classic-1.test b/gpsbabel/testo.d/classic-1.test index 560efb0c7..db446cc4e 100644 --- a/gpsbabel/testo.d/classic-1.test +++ b/gpsbabel/testo.d/classic-1.test @@ -97,13 +97,6 @@ gpsbabel -i tpg -f ${TMPDIR}/geo.tpg -o mxf -F ${TMPDIR}/tpg.mxf gpsbabel -i tpg -f ${REFERENCE}/tpg.tpg -o mxf -F ${TMPDIR}/topo.mxf compare ${TMPDIR}/tpg.mxf ${TMPDIR}/topo.mxf - -# OZI (OziExplorer 1.1) file format -rm -f ${TMPDIR}/oz.wpt ${TMPDIR}/ozi.wpt -gpsbabel -i ozi -f ${REFERENCE}/ozi.wpt -o ozi -F ${TMPDIR}/oz.wpt -gpsbabel -i ozi -f ${TMPDIR}/oz.wpt -o ozi -F ${TMPDIR}/ozi.wpt -compare ${TMPDIR}/ozi.wpt ${REFERENCE} - # Holux support is a little funky to test. Becuase it loses precision, # if we convert it to another format, we lose accuracy (rounding) in the # coords, so converting it so something else and comparing it never works. @@ -112,8 +105,6 @@ compare ${TMPDIR}/ozi.wpt ${REFERENCE} gpsbabel -i holux -f ${REFERENCE}/paris.wpo -o holux -F ${TMPDIR}/paris.wpo # compare ${REFERENCE}/paris.wpo ${TMPDIR}/paris.wpo - - # GPSPilot Tracker for PalmOS # This test is eerily similar to the NAV Companion test. In fact, the # converted reference file (magnavr.gpu) is identical. diff --git a/gpsbabel/testo.d/ozi.test b/gpsbabel/testo.d/ozi.test new file mode 100644 index 000000000..b7774ecfa --- /dev/null +++ b/gpsbabel/testo.d/ozi.test @@ -0,0 +1,10 @@ + +# OZI (OziExplorer 1.1) file format +rm -f ${TMPDIR}/oz.wpt ${TMPDIR}/ozi.wpt +gpsbabel -i ozi -f ${REFERENCE}/ozi.wpt -o ozi -F ${TMPDIR}/oz.wpt +gpsbabel -i ozi -f ${TMPDIR}/oz.wpt -o ozi -F ${TMPDIR}/ozi.wpt +compare ${TMPDIR}/ozi.wpt ${REFERENCE} + +# Test Ozi routes. +gpsbabel -i ozi -f ${REFERENCE}/route/ozi.rte -o gpx -F ${TMPDIR}/ozi~gpx.gpx +compare ${TMPDIR}/ozi~gpx.gpx ${REFERENCE}/route/ -- 2.30.2